home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Games Collection 1 / software vault.zip / software vault / CDR06 / ONEARM11.ZIP / ONE.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-08-13  |  15KB  |  675 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 1.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Integer  INTEGER001
  26.     Integer  INTEGER002
  27.     Integer  INTEGER003
  28.     Integer  INTEGER004
  29.     Integer  INTEGER005
  30.     Integer  INTEGER006
  31.     Integer  INTEGER007
  32.     Integer  INTEGER008
  33.     Integer  INTEGER009
  34.     Integer  INTEGER010
  35.     Integer  INTEGER011
  36.     Integer  INTEGER012
  37.     Integer  INTEGER013
  38.     Integer  INTEGER014
  39.     String   STRING001
  40.     String   STRING002
  41.     String   STRING003
  42.     String   STRING004
  43.     String   STRING005
  44.     String   STRING006
  45.     String   STRING007
  46.     String   STRING008
  47.     String   STRING009
  48.     String   TSTRING010(101,3)
  49.     String   TSTRING011(101,3)
  50.     String   TSTRING012(6)
  51.  
  52. ;------------------------------------------------------------------------------
  53.  
  54.     STRING002 = "Registered To: "
  55.     STRING003 = "UNREGISTERED VERSION"
  56.     STRING001 = STRING002 + STRING003
  57.     STRING004 = "Version 1.1"
  58.     INTEGER013 = 0
  59.     INTEGER011 = 1
  60.     BOOLEAN005 = 0
  61.     TSTRING012(1) = "@X0CCHERRY "
  62.     TSTRING012(2) = "@X0E LEMON "
  63.     TSTRING012(3) = "@X0D PLUM  "
  64.     TSTRING012(4) = "@X0A GRAPE "
  65.     TSTRING012(5) = "@X0F $$$$$ "
  66.     TSTRING012(6) = "@X09 ----- "
  67.     Log "Entered ONE.PPE at " + Left(Time(), 5), 0
  68.     Cls
  69.     GetUser
  70.     STRING005 = Left(U_Name(), InStr(U_Name(), " ") - 1)
  71.     STRING005 = Left(STRING005, 1) + Right(Lower(STRING005), Len(STRING005) - 1)
  72.     If (AnsiOn()) Goto LABEL001
  73.     PrintLn 
  74.     PrintLn "Sorry ", STRING005, ", but this game requires ANSI capability."
  75.     Log "User does not have ANSI capability.", 0
  76.     PrintLn 
  77.     Goto LABEL012
  78.     :LABEL001
  79.     If (STRING003 == "UNREGISTERED VERSION") Then
  80.         BOOLEAN003 = 0
  81.         INTEGER003 = 10
  82.         INTEGER012 = 25
  83.         PrintLn 
  84.         PrintLn Space(17) + "@X0F One Armed Bandit - (C) 1993 Gerry Schechter"
  85.         PrintLn 
  86.         PrintLn Space((80 - Len(STRING004)) / 2) + STRING004
  87.         PrintLn 
  88.         Delay 30
  89.         PrintLn Space((80 - Len(STRING001)) / 2) + "@X0E" + STRING001
  90.         PrintLn 
  91.         Delay 30
  92.         PrintLn Space(15) + "@X0F Please ask your Sysop to register this program!"
  93.         PrintLn 
  94.         Delay 30
  95.     Else
  96.         BOOLEAN003 = 1
  97.         INTEGER003 = 100
  98.         PrintLn 
  99.         PrintLn Space(17), "@X0F One Armed Bandit - (C) 1993 Gerry Schechter"
  100.         PrintLn 
  101.         PrintLn Space((80 - Len(STRING004)) / 2), STRING004
  102.         PrintLn 
  103.         PrintLn Space((80 - Len(STRING001)) / 2), "@X0E", STRING001
  104.         PrintLn 
  105.         GetToken INTEGER009
  106.         If (INTEGER009 == 0) Then
  107.             INTEGER012 = 50
  108.         Else
  109.             INTEGER012 = INTEGER009
  110.         Endif
  111.     Endif
  112.     If (BOOLEAN003) Then
  113.         If (ReadLine(PCBDat(), 94) <> STRING003) Then
  114.             PrintLn "@X0C"
  115.             PrintLn Space(14) + "Your Sysop is using a pirated copy of this program!"
  116.             PrintLn "@BEEP@"
  117.             PrintLn Space(12) + "This is dishonest and unethical, not to mention illegal!"
  118.             PrintLn 
  119.             Log "--> Using Pirated Software Is Illegal!!", 0
  120.             Delay 35
  121.             Print Space(26)
  122.             Wait
  123.         Else
  124.             If (Exist(PPEPath() + "ONE.DAT")) Goto LABEL002
  125.             FCreate 1, PPEPath() + "ONE.DAT", 1, 3
  126.             INTEGER009 = 0
  127.             For INTEGER001 = 1 To 101
  128.                 TSTRING010(INTEGER001, 1) = "NotUsed"
  129.                 TSTRING010(INTEGER001, 2) = "01/01/90"
  130.                 TSTRING010(INTEGER001, 3) = INTEGER009
  131.                 FPutLn 1, TSTRING010(INTEGER001, 1)
  132.                 FPutLn 1, TSTRING010(INTEGER001, 2)
  133.                 FPutLn 1, TSTRING010(INTEGER001, 3)
  134.                 TSTRING011(INTEGER001, 1) = "NotUsed"
  135.                 TSTRING011(INTEGER001, 2) = "01/01/90"
  136.                 TSTRING011(INTEGER001, 3) = INTEGER009
  137.             Next
  138.             FClose 1
  139.             :LABEL002
  140.             BOOLEAN001 = 0
  141.             BOOLEAN002 = 1
  142.             FOpen 1, PPEPath() + "ONE.DAT", 0, 0
  143.             For INTEGER001 = 1 To 100
  144.                 FGet 1, TSTRING010(INTEGER001, 1)
  145.                 If (U_Name() == TSTRING010(INTEGER001, 1)) Then
  146.                     BOOLEAN001 = 1
  147.                     INTEGER002 = INTEGER001
  148.                 Endif
  149.                 If ((!BOOLEAN001 && BOOLEAN002) && (TSTRING010(INTEGER001, 1) == "NotUsed")) Then
  150.                     BOOLEAN002 = 0
  151.                     INTEGER002 = INTEGER001
  152.                 Endif
  153.                 FGet 1, TSTRING010(INTEGER001, 2)
  154.                 FGet 1, TSTRING010(INTEGER001, 3)
  155.                 TSTRING011(INTEGER001, 1) = TSTRING010(INTEGER001, 1)
  156.                 TSTRING011(INTEGER001, 2) = TSTRING010(INTEGER001, 2)
  157.                 TSTRING011(INTEGER001, 3) = TSTRING010(INTEGER001, 3)
  158.                 If (TSTRING010(INTEGER001, 3) > INTEGER013) Then
  159.                     INTEGER014 = INTEGER001
  160.                     INTEGER013 = TSTRING010(INTEGER001, 3)
  161.                 Endif
  162.             Next
  163.             FGet 1, TSTRING010(INTEGER001, 1)
  164.             FGet 1, TSTRING010(INTEGER001, 2)
  165.             FGet 1, TSTRING010(INTEGER001, 3)
  166.             FClose 1
  167.             If (INTEGER002 > INTEGER003) Then
  168.                 PrintLn "@X0C"
  169.                 STRING006 = "Sorry " + STRING005 + ", maximum allowed users reached."
  170.                 PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  171.                 If (BOOLEAN003) Goto LABEL003
  172.                 Delay 30
  173.                 STRING006 = "Your Sysop must register this program in order for you to play."
  174.                 PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  175.                 Delay 30
  176.                 Goto LABEL004
  177.                 :LABEL003
  178.                 STRING006 = "Please notify your sysop!"
  179.                 PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  180.                 :LABEL004
  181.                 PrintLn 
  182.                 Print Space(26)
  183.                 Wait
  184.             Else
  185.                 If (BOOLEAN001) Then
  186.                     PrintLn "@X0A"
  187.                     PrintLn Space((66 - Len(STRING005)) / 2) + "Welcome Back " + STRING005
  188.                     PrintLn 
  189.                     Print Space((57 - Len(TSTRING010(INTEGER002, 3))) / 2)
  190.                     PrintLn "Your current score is " + TSTRING010(INTEGER002, 3)
  191.                     INTEGER010 = TSTRING010(INTEGER002, 3)
  192.                     INTEGER007 = INTEGER010
  193.                 Else
  194.                     PrintLn "@X0A"
  195.                     PrintLn Space((72 - Len(STRING005)) / 2) + "Welcome " + STRING005
  196.                     PrintLn 
  197.                     PrintLn Space(26) + "I'll start you out with 100"
  198.                     TSTRING010(INTEGER002, 1) = U_Name()
  199.                     TSTRING010(INTEGER002, 2) = Date()
  200.                     INTEGER010 = 100
  201.                     INTEGER007 = INTEGER010
  202.                     TSTRING010(INTEGER002, 3) = INTEGER010
  203.                     FCreate 1, PPEPath() + "ONE.DAT", 1, 3
  204.                     For INTEGER001 = 1 To 101
  205.                         FPutLn 1, TSTRING010(INTEGER001, 1)
  206.                         FPutLn 1, TSTRING010(INTEGER001, 2)
  207.                         FPutLn 1, TSTRING010(INTEGER001, 3)
  208.                     Next
  209.                     FClose 1
  210.                 Endif
  211.                 PrintLn "@X0F"
  212.                 If (INTEGER013 <> 0) Then
  213.                     STRING006 = "The current high score is " + String(INTEGER013)
  214.                     STRING006 = STRING006 + " by " + TSTRING010(INTEGER014, 1)
  215.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  216.                     PrintLn 
  217.                 Endif
  218.                 STRING006 = "Y"
  219.                 Print Space(25)
  220.                 InputYN "Do you want sounds (Y/n)", STRING006, 11
  221.                 If (((STRING006 == "y") || (STRING006 == "Y")) || (STRING006 == "")) Then
  222.                     BOOLEAN006 = 1
  223.                 Else
  224.                     BOOLEAN006 = 0
  225.                 Endif
  226.                 If (TSTRING010(INTEGER002, 2) == Left(Date(), 8)) Then
  227.                     PrintLn "@CLS@ @X0F"
  228.                     STRING006 = "Sorry " + STRING005 + ", you may only play once per day."
  229.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  230.                     PrintLn 
  231.                     Print Space(26)
  232.                     Wait
  233.                 Else
  234.                     Cls
  235.                     Print "@X0B"
  236.                     STRING006 = "One Armed Bandit"
  237.                     PrintLn Space((76 - Len(STRING006)) / 2) + STRING006
  238.                     PrintLn 
  239.                     PrintLn 
  240.                     PrintLn "@POS:22@@X09╔════════════════════════════════╗   @X07"
  241.                     PrintLn "@POS:22@@X09║@X03░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒@X09║   ╥"
  242.                     PrintLn "@POS:22@║                                ║   ║"
  243.                     PrintLn "@POS:22@║  @X0B┌───────┐ ┌───────┐ ┌───────┐@X09 ║   ║"
  244.                     PrintLn "@POS:22@║  @X0B│       │ │       │ │       │@X09 ║   ║"
  245.                     PrintLn "@POS:22@║  @X0B│       │ │       │ │       │@X09 ╠═══╝"
  246.                     PrintLn "@POS:22@║  @X0B│       │ │       │ │       │@X09 ║"
  247.                     PrintLn "@POS:22@║  @X0B└───────┘ └───────┘ └───────┘@X09 ║"
  248.                     PrintLn "@POS:22@║                                ║"
  249.                     PrintLn "@POS:22@║@X03▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░▒░@X09║"
  250.                     PrintLn "@POS:22@╚════════════════════════════════╝"
  251.                     PrintLn 
  252.                     Print "@POS:35@ @X0FBet = "
  253.                     PrintLn INTEGER011
  254.                     PrintLn 
  255.                     Print "@POS:33@ @X0FScore = "
  256.                     Print INTEGER010
  257.                     AnsiPos 34, 20
  258.                     Print "Turns = "
  259.                     Print INTEGER012
  260.                     AnsiPos 26, 9
  261.                     Print TSTRING012(5)
  262.                     AnsiPos 36, 9
  263.                     Print TSTRING012(5)
  264.                     AnsiPos 46, 9
  265.                     Print TSTRING012(5)
  266.                     :LABEL005
  267.                     AnsiPos 1, 23
  268.                     ClrEol
  269.                     Print "@X0F [@X0EP@X0F]lay  [@X0EC@X0F]hange Bet [@X0EQ@X0F]uit "
  270.                     Print "[@X0EH@X0F]elp [@X0ES@X0F]cores [@X0ER@X0F]edraw ?"
  271.                     :LABEL006
  272.                     INTEGER009 = Random(6)
  273.                     STRING006 = Inkey()
  274.                     If (MinLeft() < 2) Then
  275.                         PrintLn "@CLS@"
  276.                         BOOLEAN005 = 1
  277.                     Else
  278.                         If (STRING006 == "") Goto LABEL006
  279.                         If ((STRING006 == "q") || (STRING006 == "Q")) Then
  280.                             BOOLEAN005 = 1
  281.                             PrintLn "@CLS@"
  282.                         Else
  283.                             If ((STRING006 == "r") || (STRING006 == "R")) Then
  284.                                 RestScrn
  285.                                 Goto LABEL006
  286.                             Endif
  287.                             If (((STRING006 == "p") || (STRING006 == "P")) || (STRING006 == Chr(32))) Then
  288.                                 INTEGER010 = INTEGER010 - INTEGER011
  289.                                 INTEGER008 = INTEGER010
  290.                                 For INTEGER001 = 1 To 3
  291.                                     INTEGER004 = Random(4) + 1
  292.                                     INTEGER005 = Random(5) + 1
  293.                                     INTEGER006 = Random(5) + 1
  294.                                     If (INTEGER001 == 3) Then
  295.                                         If (((INTEGER004 == 1) && (INTEGER005 <> 1)) && (Random(1) == 0)) INTEGER005 = 1
  296.                                         If ((((INTEGER004 == 1) && (INTEGER005 == 1)) && (INTEGER006 <> 1)) && (Random(1) == 0)) INTEGER006 = 1
  297.                                         If (((INTEGER004 == 2) && (INTEGER005 <> 2)) && (Random(1) == 0)) INTEGER005 = 2
  298.                                         If ((((INTEGER004 == 2) && (INTEGER005 == 2)) && (INTEGER006 <> 2)) && (Random(1) == 0)) INTEGER006 = 2
  299.                                         If (((INTEGER004 == 3) && (INTEGER005 <> 3)) && (Random(2) == 0)) INTEGER005 = 3
  300.                                         If ((((INTEGER004 == 3) && (INTEGER005 == 3)) && (INTEGER006 <> 3)) && (Random(2) == 0)) INTEGER006 = 3
  301.                                         If (((INTEGER004 == 4) && (INTEGER005 <> 4)) && (Random(3) == 0)) INTEGER005 = 4
  302.                                         If ((((INTEGER004 == 4) && (INTEGER005 == 4)) && (INTEGER006 <> 4)) && (Random(3) == 0)) INTEGER006 = 4
  303.                                     Endif
  304.                                     AnsiPos 26, 9
  305.                                     Print TSTRING012(INTEGER004)
  306.                                     AnsiPos 36, 9
  307.                                     Print TSTRING012(INTEGER005)
  308.                                     AnsiPos 46, 9
  309.                                     Print TSTRING012(INTEGER006)
  310.                                     Delay 1
  311.                                 Next
  312.                                 If ((INTEGER004 == 1) && (INTEGER005 <> 1)) INTEGER010 = INTEGER010 + INTEGER011 * 2
  313.                                 If (((INTEGER004 == 1) && (INTEGER005 == 1)) && (INTEGER006 <> 1)) INTEGER010 = INTEGER010 + INTEGER011 * 3
  314.                                 If (((INTEGER004 == 1) && (INTEGER005 == 1)) && (INTEGER006 == 1)) INTEGER010 = INTEGER010 + INTEGER011 * 4
  315.                                 If (((INTEGER004 == 2) && (INTEGER005 == 2)) && (INTEGER006 == 2)) INTEGER010 = INTEGER010 + INTEGER011 * 6
  316.                                 If (((INTEGER004 == 3) && (INTEGER005 == 3)) && (INTEGER006 == 3)) INTEGER010 = INTEGER010 + INTEGER011 * 7
  317.                                 If (((INTEGER004 == 4) && (INTEGER005 == 4)) && (INTEGER006 == 4)) INTEGER010 = INTEGER010 + INTEGER011 * 8
  318.                                 If (((INTEGER004 == 5) && (INTEGER005 == 5)) && (INTEGER006 == 5)) INTEGER010 = INTEGER010 + INTEGER011 * 10
  319.                                 AnsiPos 36, 13
  320.                                 If (INTEGER010 > INTEGER008) Then
  321.                                     Print "@X0BWinner!"
  322.                                     If (BOOLEAN006) Gosub LABEL015
  323.                                 Else
  324.                                     Print "@X03░▒░▒░▒░"
  325.                                 Endif
  326.                             Else
  327.                                 If ((STRING006 == "C") || (STRING006 == "c")) Then
  328.                                     :LABEL007
  329.                                     AnsiPos 1, 23
  330.                                     ClrEol
  331.                                     InputInt "Enter New Bet Amount (1-20) ", INTEGER011, 2
  332.                                     If ((INTEGER011 < 1) || (INTEGER011 > 20)) Goto LABEL007
  333.                                     AnsiPos 42, 16
  334.                                     Print "@X0F"
  335.                                     Print INTEGER011
  336.                                     Print " "
  337.                                     Goto LABEL005
  338.                                 Endif
  339.                                 If ((STRING006 == "S") || (STRING006 == "s")) Then
  340.                                     Gosub LABEL013
  341.                                     Goto LABEL005
  342.                                 Endif
  343.                                 If ((STRING006 == "H") || (STRING006 == "h")) Then
  344.                                     SaveScrn
  345.                                     Print "@CLS@"
  346.                                     PrintLn "@X0APlaying @X0EOne Armed Bandit @X0Ais easy!"
  347.                                     PrintLn 
  348.                                     PrintLn "@X0APress @X0EP@X0A or @X0ESpace@X0A to play."
  349.                                     PrintLn "@X0APress @X0EC@X0A to change the amount of your bet."
  350.                                     PrintLn "@X0APress @X0ES@X0A to see the current scores."
  351.                                     PrintLn "@X0APress @X0EQ@X0A to quit the game."
  352.                                     PrintLn "@X0APress @X0ER@X0A to redraw the screen."
  353.                                     PrintLn 
  354.                                     PrintLn "@X0APayoffs are as follows:"
  355.                                     PrintLn 
  356.                                     PrintLn "@X0CCHERRY@X0A  ------  ------  2X bet"
  357.                                     PrintLn "@X0CCHERRY  CHERRY@X0A  ------  3X"
  358.                                     PrintLn "@X0CCHERRY  CHERRY  CHERRY@X0A  4X"
  359.                                     PrintLn "@X0ELEMON   LEMON   LEMON@X0A   6X"
  360.                                     PrintLn "@X0DPLUM    PLUM    PLUM@X0A    7X"
  361.                                     PrintLn "@X0AGRAPE   GRAPE   GRAPE   8X"
  362.                                     PrintLn "@X0F$$$$$   $$$$$   $$$$$@X0A  10X"
  363.                                     PrintLn 
  364.                                     PrintLn "@X0AThe first person to score 5,000 wins, and the scores are then reset."
  365.                                     PrintLn 
  366.                                     Print Space(21)
  367.                                     Wait
  368.                                     RestScrn
  369.                                     Goto LABEL005
  370.                                 Endif
  371.                                 Goto LABEL005
  372.                             Endif
  373.                             AnsiPos 42, 16
  374.                             Print "@X0F", INTEGER011, " "
  375.                             AnsiPos 42, 18
  376.                             Print INTEGER010, " "
  377.                             AnsiPos 42, 20
  378.                             INTEGER012 = INTEGER012 - 1
  379.                             Print INTEGER012, " "
  380.                             If (MinLeft() < 5) Then
  381.                                 If (MinLeft() < 2) Then
  382.                                     PrintLn "@CLS@"
  383.                                     BOOLEAN005 = 1
  384.                                     Goto LABEL009
  385.                                 Endif
  386.                                 AnsiPos 30, 5
  387.                                 Print "@X0FCaution " + String(MinLeft()) + " min left"
  388.                             Endif
  389.                             AnsiPos 56, 23
  390.                             If (INTEGER012 == 0) Goto LABEL008
  391.                             SaveScrn
  392.                             If (INTEGER010 < 5000) Goto LABEL006
  393.                             Delay 10
  394.                             PrintLn "@CLS@ @X0C"
  395.                             If (BOOLEAN006) Gosub LABEL015
  396.                             STRING006 = "Congratulations " + STRING005 + ", you've won the round!"
  397.                             PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  398.                             If (BOOLEAN006) Gosub LABEL015
  399.                             Delay 30
  400.                             For INTEGER001 = 1 To 100
  401.                                 TSTRING010(INTEGER001, 1) = "NotUsed"
  402.                                 TSTRING010(INTEGER001, 2) = "01/01/90"
  403.                                 TSTRING010(INTEGER001, 3) = 0
  404.                             Next
  405.                             TSTRING010(101, 1) = U_Name()
  406.                             TSTRING010(101, 2) = Date()
  407.                             TSTRING010(101, 3) = 0
  408.                             Goto LABEL010
  409.                             :LABEL008
  410.                             Delay 40
  411.                             PrintLn "@CLS@ @X0F"
  412.                             STRING006 = "Sorry " + STRING005 + ", but you are out of turns for today."
  413.                             PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  414.                         Endif
  415.                     Endif
  416.                     :LABEL009
  417.                     PrintLn "@X0A"
  418.                     If (INTEGER010 >= INTEGER007) Then
  419.                         STRING006 = "You won " + String(INTEGER010 - INTEGER007) + " today!"
  420.                         PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  421.                     Else
  422.                         STRING006 = "You lost " + String(INTEGER007 - INTEGER010) + " today."
  423.                         PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  424.                     Endif
  425.                     PrintLn "@X0E"
  426.                     STRING006 = "Please call back tomorrow and play again."
  427.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  428.                     If (INTEGER010 > INTEGER013) Then
  429.                         PrintLn "@X0F"
  430.                         STRING006 = "Congratulations, you now have the high score!"
  431.                         If (BOOLEAN006) Gosub LABEL015
  432.                         PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  433.                     Endif
  434.                     PrintLn 
  435.                     Print Space(26)
  436.                     Wait
  437.                     :LABEL010
  438.                     Gosub LABEL013
  439.                     PrintLn "@CLS@ @X0F"
  440.                     Print "Exiting .. "
  441.                     FCreate 1, PPEPath() + "ONE.DAT", 1, 3
  442.                     For INTEGER001 = 1 To 101
  443.                         If ((INTEGER010 < 5000) && (INTEGER002 == INTEGER001)) Then
  444.                             TSTRING010(INTEGER002, 2) = Date()
  445.                             TSTRING010(INTEGER002, 3) = INTEGER010
  446.                         Endif
  447.                         FPutLn 1, TSTRING010(INTEGER001, 1)
  448.                         FPutLn 1, TSTRING010(INTEGER001, 2)
  449.                         FPutLn 1, TSTRING010(INTEGER001, 3)
  450.                     Next
  451.                     FClose 1
  452.                     If (Exist(PPEPath() + "ONE.BAT")) Then
  453.                         FCreate 1, PPEPath() + "ONE.BLT", 1, 3
  454.                         FPutLn 1, ""
  455.                         FPut 1, "@X0F "
  456.                         STRING006 = "One Armed Bandit High Scores To Date"
  457.                         FPutLn 1, Space((76 - Len(STRING006)) / 2) + STRING006
  458.                         STRING006 = "════════════════════════════════════"
  459.                         FPut 1, "@X0C"
  460.                         FPutLn 1, Space((78 - Len(STRING006)) / 2) + STRING006
  461.                         If ((TSTRING010(101, 1) <> "NotUsed") && (TSTRING010(101, 1) <> "")) Then
  462.                             FPut 1, "@X0D"
  463.                             STRING006 = "Winner Last Round Was " + TSTRING010(101, 1) + " On " + TSTRING010(101, 2)
  464.                             FPutLn 1, Space((78 - Len(STRING006)) / 2) + STRING006
  465.                         Endif
  466.                         FPutLn 1, "@X0E"
  467.                         FPutLn 1, Space(18), "   Name                    Date     Score"
  468.                         FPutLn 1, "@X0A"
  469.                         For INTEGER001 = 1 To 100
  470.                             If (TSTRING011(INTEGER001, 1) <> "NotUsed") Then
  471.                                 If (INTEGER001 == 1) Then
  472.                                     FPut 1, "@X0F"
  473.                                     Goto LABEL011
  474.                                 Endif
  475.                                 FPut 1, "@X0A"
  476.                                 :LABEL011
  477.                                 FPut 1, Space(18), TSTRING011(INTEGER001, 1), "@POS:44@", TSTRING011(INTEGER001, 2), "   "
  478.                                 FPutLn 1, Right(Space(3) + TSTRING011(INTEGER001, 3), 4)
  479.                             Endif
  480.                         Next
  481.                         FClose 1
  482.                         Shell 1, INTEGER001, PPEPath() + "ONE.BAT", ""
  483.                     Endif
  484.                 Endif
  485.             Endif
  486.             :LABEL012
  487.             If (BOOLEAN003) Then
  488.                 PrintLn "Returning you to " + STRING003 + ".."
  489.             Else
  490.                 Delay 30
  491.                 PrintLn "Returning you to PCBoard.."
  492.                 Delay 30
  493.             Endif
  494.         Endif
  495.     Endif
  496.     Log "Exited ONE.PPE at " + Left(Time(), 5), 0
  497.     End
  498.     :LABEL013
  499.     If ((INTEGER012 <> 0) && !BOOLEAN005) SaveScrn
  500.     If (INTEGER010 < 5000) Then
  501.         TSTRING010(INTEGER002, 2) = Date()
  502.         TSTRING010(INTEGER002, 3) = INTEGER010
  503.     Endif
  504.     Print "@CLS@ @X0D"
  505.     For INTEGER001 = 1 To 100
  506.         TSTRING011(INTEGER001, 1) = TSTRING010(INTEGER001, 1)
  507.         TSTRING011(INTEGER001, 2) = TSTRING010(INTEGER001, 2)
  508.         TSTRING011(INTEGER001, 3) = TSTRING010(INTEGER001, 3)
  509.     Next
  510.     AnsiPos 30, 12
  511.     Print "Sorting."
  512.     :LABEL014
  513.     BOOLEAN004 = 1
  514.     For INTEGER001 = 1 To 99
  515.         INTEGER009 = INTEGER001 + 1
  516.         If ((S2I(TSTRING011(INTEGER009, 3), 10) > S2I(TSTRING011(INTEGER001, 3), 10)) && (TSTRING011(INTEGER009, 1) <> "NotUsed")) Then
  517.             BOOLEAN004 = 0
  518.             STRING007 = TSTRING011(INTEGER001, 1)
  519.             STRING008 = TSTRING011(INTEGER001, 2)
  520.             STRING009 = TSTRING011(INTEGER001, 3)
  521.             TSTRING011(INTEGER001, 1) = TSTRING011(INTEGER009, 1)
  522.             TSTRING011(INTEGER001, 2) = TSTRING011(INTEGER009, 2)
  523.             TSTRING011(INTEGER001, 3) = TSTRING011(INTEGER009, 3)
  524.             TSTRING011(INTEGER009, 1) = STRING007
  525.             TSTRING011(INTEGER009, 2) = STRING008
  526.             TSTRING011(INTEGER009, 3) = STRING009
  527.         Endif
  528.     Next
  529.     Print "."
  530.     If (!BOOLEAN004) Goto LABEL014
  531.     Print "@CLS@ @X0F"
  532.     STRING006 = "One Armed Bandit High Scores To Date"
  533.     PrintLn Space((76 - Len(STRING006)) / 2) + STRING006
  534.     STRING006 = "════════════════════════════════════"
  535.     Print "@X0C"
  536.     PrintLn Space((78 - Len(STRING006)) / 2) + STRING006
  537.     If ((TSTRING010(101, 1) <> "NotUsed") && (TSTRING010(101, 1) <> "")) Then
  538.         Print "@X0D"
  539.         STRING006 = "Winner Last Round Was " + TSTRING010(101, 1) + " On " + TSTRING010(101, 2)
  540.         PrintLn Space((78 - Len(STRING006)) / 2) + STRING006
  541.         INTEGER009 = 13
  542.     Else
  543.         INTEGER009 = 15
  544.     Endif
  545.     PrintLn "@X0E"
  546.     PrintLn Space(18), "   Name                    Date     Score"
  547.     PrintLn "@X0A"
  548.     For INTEGER001 = 1 To INTEGER009
  549.         If (TSTRING011(INTEGER001, 1) <> "NotUsed") Then
  550.             Print "@X0A"
  551.             If (TSTRING011(INTEGER001, 1) == U_Name()) Print "@X0B"
  552.             If (INTEGER001 == 1) Print "@X0F"
  553.             Print Space(18), TSTRING011(INTEGER001, 1), "@POS:44@", TSTRING011(INTEGER001, 2), "   "
  554.             PrintLn Right(Space(3) + TSTRING011(INTEGER001, 3), 4)
  555.         Endif
  556.     Next
  557.     PrintLn 
  558.     Print Space(25)
  559.     Wait
  560.     If ((INTEGER012 <> 0) && !BOOLEAN005) RestScrn
  561.     Return
  562.     :LABEL015
  563.     If (OnLocal()) Goto LABEL016
  564.     Print "@BEEP@"
  565.     Goto LABEL017
  566.     :LABEL016
  567.     Sound 1024
  568.     Delay 1
  569.     Sound 0
  570.     :LABEL017
  571.     Return
  572.  
  573. ;------------------------------------------------------------------------------
  574. ;
  575. ; Usage report (before postprocessing)
  576. ;
  577. ; ■ Statements used :
  578. ;
  579. ;    1       End
  580. ;    2       Cls
  581. ;    2       ClrEol
  582. ;    6       Wait
  583. ;    90      Goto 
  584. ;    142     Let 
  585. ;    44      Print 
  586. ;    106     PrintLn 
  587. ;    77      If 
  588. ;    4       FCreate 
  589. ;    1       FOpen 
  590. ;    5       FClose 
  591. ;    6       FGet 
  592. ;    6       FPut 
  593. ;    17      FPutLn 
  594. ;    1       GetUser
  595. ;    4       Log 
  596. ;    1       InputYN 
  597. ;    1       InputInt 
  598. ;    6       Gosub 
  599. ;    2       Return
  600. ;    13      Delay 
  601. ;    1       GetToken 
  602. ;    1       Shell 
  603. ;    17      AnsiPos 
  604. ;    3       SaveScrn
  605. ;    3       RestScrn
  606. ;    2       Sound 
  607. ;
  608. ;
  609. ; ■ Functions used :
  610. ;
  611. ;    7       *
  612. ;    25      /
  613. ;    91      +
  614. ;    31      -
  615. ;    66      ==
  616. ;    21      <>
  617. ;    17      <
  618. ;    10      <=
  619. ;    6       >
  620. ;    21      >=
  621. ;    53      !
  622. ;    61      &&
  623. ;    20      ||
  624. ;    26      Len(
  625. ;    1       Lower()
  626. ;    5       Left()
  627. ;    3       Right()
  628. ;    44      Space()
  629. ;    1       Chr()
  630. ;    1       InStr()
  631. ;    12      Random()
  632. ;    5       Date()
  633. ;    2       Time()
  634. ;    6       U_Name()
  635. ;    1       Inkey()
  636. ;    4       String()
  637. ;    1       PCBDat()
  638. ;    8       PPEPath()
  639. ;    1       ReadLine()
  640. ;    1       OnLocal()
  641. ;    4       MinLeft()
  642. ;    2       Exist()
  643. ;    2       S2I()
  644. ;    1       AnsiOn()
  645. ;
  646. ;------------------------------------------------------------------------------
  647. ;
  648. ; Analysis flags : Sd
  649. ;
  650. ; S - Shell to DOS ■ 5
  651. ;     This may be normal if the PPE need to execute an external command,
  652. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  653. ;     or usefull (sorting, maintenance,...). Check!
  654. ;     ■ Search for : SHELL
  655. ;
  656. ; d - Access PCBOARD.DAT ■ 2
  657. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  658. ;     for many PPE so they can find various informations on the system
  659. ;     (system paths, max number of lines in messages, ...) but it may also
  660. ;     be a way to gather vital informations.
  661. ;     ■ Search for : PCBDAT()
  662. ;
  663. ;------------------------------------------------------------------------------
  664. ;
  665. ; Postprocessing report
  666. ;
  667. ;    10      For/Next
  668. ;    0       While/EndWhile
  669. ;    35      If/Then or If/Then/Else
  670. ;    0       Select Case
  671. ;
  672. ;------------------------------------------------------------------------------
  673. ;                 AEGiS Corp - Break the routines, code against the machines!
  674. ;------------------------------------------------------------------------------
  675.